package main

import (
	"github.com/kataras/iris"
	"github.com/kataras/iris/hero"
	"iris-mvc/web/routes"
	"iris-mvc/repositories"
	"iris-mvc/datasource"
	"iris-mvc/services"
)

// 初始化http服务路由映射
func RegisterRouters(app *iris.Application) {
	routes.RegisterUserRoutes(app)
}

func main() {
	app := iris.New()

	// 设置日志级别
	// app.Logger().SetLevel("debug")

	//加载模板文件
    // app.RegisterView(iris.HTML("./web/views", ".html"))

	// 初始化对象进行依赖注入
	repo := repositories.NewUserRepository(datasource.Users)
	userService := services.NewUserService(repo)

	// 依赖注入
	hero.Register(userService)

	// 注册路由
	RegisterRouters(app)

	app.Run(
		iris.Addr(":8082"),  
		iris.WithoutServerError(iris.ErrServerClosed),
		 //启用更快的json序列化和优化：
		iris.WithOptimizations,
	)
}